package com.greenold.service.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.greenold.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * @author YueYang
 * Created on 2025/10/18 14:01
 * @version 1.0
 */
public class CarePlanItem extends BaseEntity {
    /**
     * 主键
     */
    private Long id;

    /**
     * 护理计划id
     */
    private Long planId;

    /**
     * 护理项目id
     */
    private Long itemId;

    /**
     * 执行时间
     */
    @JsonFormat(pattern = "HH:mm")
    @DateTimeFormat(pattern = "HH:mm")
    private LocalTime executeTime;

    /**
     * 执行周期
     */
    private Integer cycle;

    /**
     * 执行频率
     */
    private Integer frequency;


    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createAt;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateAt;

    /**
     * 创建人id
     */
    private Long createdBy;

    /**
     * 更新人id
     */
    private Long updatedBy;

    /**
     * 备注
     */
    private String remark;

    /**
     * 扩展字段1
     */
    private String extend1;
    /**
     * 扩展字段2
     */
    private String extend2;


    public CarePlanItem() {
    }

    public CarePlanItem(Long id, Long planId, Long itemId, LocalTime executeTime, Integer cycle, Integer frequency, LocalDateTime createAt, LocalDateTime updateAt, Long createdBy, Long updatedBy, String remark, String extend1, String extend2) {
        this.id = id;
        this.planId = planId;
        this.itemId = itemId;
        this.executeTime = executeTime;
        this.cycle = cycle;
        this.frequency = frequency;
        this.createAt = createAt;
        this.updateAt = updateAt;
        this.createdBy = createdBy;
        this.updatedBy = updatedBy;
        this.remark = remark;
        this.extend1 = extend1;
        this.extend2 = extend2;
    }

    /**
     * 获取
     * @return id
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取
     * @return planId
     */
    public Long getPlanId() {
        return planId;
    }

    /**
     * 设置
     * @param planId
     */
    public void setPlanId(Long planId) {
        this.planId = planId;
    }

    /**
     * 获取
     * @return itemId
     */
    public Long getItemId() {
        return itemId;
    }

    /**
     * 设置
     * @param itemId
     */
    public void setItemId(Long itemId) {
        this.itemId = itemId;
    }

    /**
     * 获取
     * @return executeTime
     */
    public LocalTime getExecuteTime() {
        return executeTime;
    }

    /**
     * 设置
     * @param executeTime
     */
    public void setExecuteTime(LocalTime executeTime) {
        this.executeTime = executeTime;
    }

    /**
     * 获取
     * @return cycle
     */
    public Integer getCycle() {
        return cycle;
    }

    /**
     * 设置
     * @param cycle
     */
    public void setCycle(Integer cycle) {
        this.cycle = cycle;
    }

    /**
     * 获取
     * @return frequency
     */
    public Integer getFrequency() {
        return frequency;
    }

    /**
     * 设置
     * @param frequency
     */
    public void setFrequency(Integer frequency) {
        this.frequency = frequency;
    }

    /**
     * 获取
     * @return createAt
     */
    public LocalDateTime getCreateAt() {
        return createAt;
    }

    /**
     * 设置
     * @param createAt
     */
    public void setCreateAt(LocalDateTime createAt) {
        this.createAt = createAt;
    }

    /**
     * 获取
     * @return updateAt
     */
    public LocalDateTime getUpdateAt() {
        return updateAt;
    }

    /**
     * 设置
     * @param updateAt
     */
    public void setUpdateAt(LocalDateTime updateAt) {
        this.updateAt = updateAt;
    }

    /**
     * 获取
     * @return createdBy
     */
    public Long getCreatedBy() {
        return createdBy;
    }

    /**
     * 设置
     * @param createdBy
     */
    public void setCreatedBy(Long createdBy) {
        this.createdBy = createdBy;
    }

    /**
     * 获取
     * @return updatedBy
     */
    public Long getUpdatedBy() {
        return updatedBy;
    }

    /**
     * 设置
     * @param updatedBy
     */
    public void setUpdatedBy(Long updatedBy) {
        this.updatedBy = updatedBy;
    }

    /**
     * 获取
     * @return remark
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 设置
     * @param remark
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * 获取
     * @return extend1
     */
    public String getExtend1() {
        return extend1;
    }

    /**
     * 设置
     * @param extend1
     */
    public void setExtend1(String extend1) {
        this.extend1 = extend1;
    }

    /**
     * 获取
     * @return extend2
     */
    public String getExtend2() {
        return extend2;
    }

    /**
     * 设置
     * @param extend2
     */
    public void setExtend2(String extend2) {
        this.extend2 = extend2;
    }

    public String toString() {
        return "CarePlanItem{id = " + id + ", planId = " + planId + ", itemId = " + itemId + ", executeTime = " + executeTime + ", cycle = " + cycle + ", frequency = " + frequency + ", createAt = " + createAt + ", updateAt = " + updateAt + ", createdBy = " + createdBy + ", updatedBy = " + updatedBy + ", remark = " + remark + ", extend1 = " + extend1 + ", extend2 = " + extend2 + "}";
    }
}
